using System.Windows.Forms;

namespace ICSharpCode.TextEditor.Gui.CompletionWindow
{
    public interface ICompletionDataProvider
    {
        ImageList ImageList { get; }

        string PreSelection { get; }

        int DefaultIndex { get; }

        CompletionDataProviderKeyResult ProcessKey(char key);

        CompletionDataProviderKeyResult ProcessKey(TextEditorControl editor, char key);

        bool InsertAction(ICompletionData data, TextArea textArea, int insertionOffset, char key);

        ICompletionData[] GenerateCompletionData(string fileName, TextArea textArea, char charTyped);
    }
}
